song.yz@foxmail.com wechat: math-box

统计机器学习

修正KNN方法



理论上,用贝叶斯分类预测定性变量是一个很自然的想法。但对于一个实际问题的测量数据而言,很难知道 给定X后Y的条件分布,所以有时候计算贝叶斯分类器是不可能的。许多方法尝试在给定X后先估计Y的条件分布, 然后将一个给定的测量分类到估计分布概率最大的类别中,其中一个方法就是KNN分类器。

尽管KNN方法原理很简单,但是KNN能够产生一个对最优贝叶斯分类近似的分类器。该分类器偏差较低,但是方差很大。 当K较小时,决策边界很不规则,从数据拟合看不能与贝叶斯决策边界契合。当K增加时,得到近似线性的决策边界。

经典KNN分类器采用欧式距离作为多维数据距离度量。考虑到实际场景可能不同数据起伏较大,一些重要数据方差较小,因而造成权重较低。 因此这里对其做一定的改进,命名为MKNN。假设不同属性互不相关情况下的统计距离作为度量。两个n维多元向量的距离为 \[\sqrt {{{\left[ {\frac{{\left( {{X_1} - {x_1}} \right)}}{{{\sigma _1}}}} \right]}^2} + {{\left[ {\frac{{\left( {{X_2} - {x_2}} \right)}}{{{\sigma _2}}}} \right]}^2} + \cdots + {{\left[ {\frac{{\left( {{X_n} - {x_n}} \right)}}{{{\sigma _n}}}} \right]}^2}} \]

最小二乘法得到的线性决策边界是非常光滑的,拟合显然也很稳定。然而,它十分依赖于线性决策边界是合适的这一假设。 从统计角度而言,其具有低方差和潜在的高偏差。 KNN过程没有内在数据的任何假设,能够适应任何场合。然而其决策边界的特定性质决定了其不稳定性--高方差和低偏差。

每种方法都有适合其最优解的场合,实际工程中需要根据学习数据的特点选择合理的学习策略。